package com.mpo.web.ws;

import javax.naming.InitialContext;
import javax.naming.NamingException;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.PathParam;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import com.mpo.common.util.SeguridadesException;
import com.mpo.ejb.persistence.util.frontend.dto.OrdenDePagoDTO;
import com.mpo.ejb.servicio.frontend.ServicioClienteRemote;

/**
 * Clase que ofrece web servicios relacionados con las ordenes de pagos de los clientes  
 * 
 * @author Jose Auquilla
 *
 */
@Path("/wsOPagos")
public class WSOrdenesPagos {
	private static final Logger log = LoggerFactory.getLogger(WSOrdenesPagos.class);
	
	OrdenDePagoDTO ordenDePago;
	ServicioClienteRemote servicioCliente;
	/**
	 * Metodo de web service que permite insertar una nueva orden de pago por abono o total del cliente 
	 * @param tipo_servicio
	 * @param servicio
	 * @param valorUnit
	 * @param cantidad
	 * @param detalle
	 * @throws NamingException
	 */
	@GET()
	@Produces(MediaType.APPLICATION_JSON)
	@Path("/setDatosOrdenPago/{cliente}/{fecha_inicio}/{fecha_limite}/{valor}/{saldoTotal}/{concepto}")
	public void setOrdenPago(@PathParam("cuenta") Integer cuenta, @PathParam("fechaInicio") String fechaInicio,
			@PathParam("fechaLimite") String fechaLimite,
			@PathParam("valor") String valor,
			@PathParam("saldoTotal") String saldoTotal,
			@PathParam("concepto") String concepto) throws NamingException {
		log.info("setOrdenPago web service");
		InitialContext context = new InitialContext();
		servicioCliente = (ServicioClienteRemote) context
				.lookup("ejb:mpoEAP/mpoEJB/ServicioClienteImpl!com.mpo.ejb.servicio.frontend.ServicioClienteRemote");
		// try {
		float auxSaldoTotal= Float.parseFloat(valor);
		  //  if(auxSaldoTotal==0.00) servicioOrdenPago.setOrdenPagoTotal(fecha_inicio, fecha_limite, valort, SaldoTotal, concepto)
			//else servicioCliente.setOrdenPagoAbono(fecha_inicio, fecha_limite, valort, SaldoTotal, concepto);
		//} catch (SeguridadesException e) {
			//e.printStackTrace();
		//}

	}
	
	
	@GET()
	@Produces(MediaType.APPLICATION_JSON)
	@Path("/getOrdenPagoPorId/{idOrdenPago}")
	public OrdenDePagoDTO setOrdenPago(@PathParam("idOrdenPago") Integer idOrdenPago
			) throws NamingException {
		log.info("getOrdenPagoPorID web service");
		InitialContext context = new InitialContext();
		servicioCliente = (ServicioClienteRemote) context
				.lookup("ejb:mpoEAP/mpoEJB/ServicioClienteImpl!com.mpo.ejb.servicio.frontend.ServicioClienteRemote");
		 try {
			this.ordenDePago= servicioCliente.getOrdenPagoPorId(idOrdenPago);
		} catch (SeguridadesException e) {
			
		}
return this.ordenDePago;
	}
}
